Letzte Änderungen
Zulezt geänderten Inhalte - in TYPO3 V10
Um die zulezt geänderten Inhalte aus allen Unterseiten der aktuellen Seite aufzulisten kann folgendes Typoscript verwendet werden (hier eingebettet in mein Gridelements Setup):
tt_content.menu_recently_updated >
tt_content.menu_recently_updated =< lib.contentElement
tt_content.menu_recently_updated {
################
### TEMPLATE ###
################
templateName = MenuRecentlyUpdated
##########################
### DATA PREPROCESSING ###
##########################
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
10 {
table = tt_content
selectFields = tt_content.*
groupBy = uid
pidInList.data = leveluid : 0
orderBy = tstamp DESC
recursive = 99
join.data = field:pid
join.wrap = pages ON tt_content.pid = pages.uid AND pages.pid IN(|)
as = content
max = 15
}
}
}
Das Template zur Ausgabe, gruppiert nach Monaten:
<f:if condition="{content}">
<ul>
<f:variable name="month" value="" />
<f:variable name="lastmonth" value="---" />
<f:for each="{content}" as="record">
<f:variable name="month" value="{record.data.tstamp -> f:format.date(format: '%m.%Y')}" />
<f:if condition="{lastmonth} != {month}">
</ul>
<h3>{month}</h3>
<ul>
</f:if>
<f:variable name="lastmonth" value="{month}" />
<li>
<f:link.page pageUid="{record.data.pid}" section="c{record.data.uid}">
<f:if condition="{record.data.header} ">
<f:then>
{record.data.header}
</f:then>
<f:else>
Inhalt anzeigen
</f:else>
</f:if>
</f:link.page>
<small>- {record.data.tstamp -> f:format.date(format: '%d.%m.%Y - %H:%M')} Uhr</small>
</li>
</f:for>
</ul>
</f:if>
RSYS_LASTCHANGED (ältere TYPO3 Versionen)
Um eine Liste der letzten Änderungen anzuzeigen verwende ich den Marker ###RSYS_LASTCHANGED###. Er ist im HTML Template und wird standardmässig per TS Template auf leer gesetzt:
RSYS_LASTCHANGED=CONTENT
RSYS_LASTCHANGED {
}
Um den Inhalt nun anzuzeigen folgendes TS Template der Seite zuordnen:
# --- RSYS_LASTCHANGED
page.10.marks.RSYS_LASTCHANGED=CONTENT
page.10.marks.RSYS_LASTCHANGED {
table = tt_content
wrap=<div class="lastchanged"><h3>Letzte Änderungen</h3> <ul>|</ul></div>
select{
orderBy = tstamp DESC
languageField=sys_language_uid
max = 10
pidInList.cObject = HMENU
pidInList.cObject {
entryLevel = 0
1 = TMENU
1 {
expAll = 1
NO {
doNotLinkIt = 1
stdWrap.field = uid
stdWrap.wrap = | |*| ,| |*|
# Hier wird optionSplit benötigt
# Damit die erste uid kein , erhält
}
}
2 = TMENU
2 {
expAll = 1
NO {
doNotLinkIt = 1
stdWrap.field = uid
stdWrap.wrap = ,|
}
}
3 < .2
4 < .2
# usw. für alle verfübaren Ebenen.
}
}
renderObj = COA
renderObj {
10 = TEXT
10{
field = header
typolink.parameter.field=pid
typolink.parameter.stdWrap.dataWrap=|#{field:uid}
wrap = <li class="menu">|
}
20 = TEXT
20{
#field = tstamp
#strftime = %d.%m.%y
# %H:%M:%S
#wrap = (|)</li>
wrap = |</li>
}
}
}
# ---------- end RSYS_LASTCHANGED ----------